home *** CD-ROM | disk | FTP | other *** search
/ 100 Plus Great Games 2 / 100PLUSV2.BIN / games / DuchessLuynes.dxr / playing cards_57_stock cards.ls < prev    next >
Encoding:
Text File  |  2002-01-25  |  2.9 KB  |  95 lines

  1. property spriteNum, card, wastecard
  2. global stock, waste, tableau, redeals
  3.  
  4. on beginSprite me
  5.   redeals = 0
  6.   card = sprite(spriteNum)
  7.   stock = new(script("card pile"))
  8.   stock.cards = shuffle()
  9.   wastecard = sprite(12)
  10. end
  11.  
  12. on shuffle me
  13.   unshuffled = []
  14.   shuffled = []
  15.   repeat with couting = 1 to 2
  16.     repeat with rank in ["ace", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "jack", "queen", "king"]
  17.       repeat with suit in ["hearts", "diamonds", "clubs", "spades"]
  18.         unshuffled.add([#rank: rank, #suit: suit])
  19.       end repeat
  20.     end repeat
  21.     repeat while unshuffled.count > 0
  22.       temp = unshuffled[random(unshuffled.count)]
  23.       shuffled.add(temp)
  24.       unshuffled.deleteOne(temp)
  25.     end repeat
  26.   end repeat
  27.   return shuffled
  28. end
  29.  
  30. on mouseDown me
  31.   if card.member = member("backofcard", "playing cards") then
  32.     repeat with counter = 17 to 20
  33.       if stock.cards.count = 0 then
  34.         exit repeat
  35.       end if
  36.       puppetSound(3, member("deal card", "100GPak Generic SFX"))
  37.       sprite(counter).member = member(stock.cards[1].rank & "_" & stock.cards[1].suit, "playing cards")
  38.       stock.cards.deleteAt(1)
  39.       tableau[sprite(counter).row].addCard(counter)
  40.       updateStage()
  41.     end repeat
  42.     repeat with counter = 1 to 2
  43.       if stock.cards.count = 0 then
  44.         exit repeat
  45.       end if
  46.       puppetSound(3, member("deal card", "100GPak Generic SFX"))
  47.       wastecard.member = member(stock.cards[1].rank & "_" & stock.cards[1].suit, "playing cards")
  48.       stock.cards.deleteAt(1)
  49.       waste.addCard(wastecard.spriteNum)
  50.       updateStage()
  51.     end repeat
  52.     if stock.cards.count = 0 then
  53.       if redeals < 3 then
  54.         card.member = member("replenish", "playing cards")
  55.       else
  56.         card.member = member("empty", "playing cards")
  57.         checklose()
  58.       end if
  59.     end if
  60.   else
  61.     if card.member = member("replenish", "playing cards") then
  62.       redeals = redeals + 1
  63.       shoot = []
  64.       repeat with i = 1 to waste.cards.count
  65.         shoot.add(waste.cards[i])
  66.       end repeat
  67.       repeat with hh = 1 to tableau.count
  68.         repeat with i = 1 to tableau[hh].cards.count
  69.           shoot.add(tableau[hh].cards[i])
  70.         end repeat
  71.       end repeat
  72.       stock.cards = reshuffle(shoot)
  73.       waste.cards.deleteAll()
  74.       repeat with uu = 1 to tableau.count
  75.         tableau[uu].cards.deleteAll()
  76.       end repeat
  77.       repeat with i = 17 to 20
  78.         sprite(i).member = member("empty", "playing cards")
  79.         sprite(i).undercard.member = member("empty", "playing cards")
  80.       end repeat
  81.       card.member = member("backofcard", "playing cards")
  82.       wastecard.member = member("empty", "playing cards")
  83.       wastecard.undercard.member = member("empty", "playing cards")
  84.     end if
  85.   end if
  86. end
  87.  
  88. on reshuffle arg
  89.   sho = []
  90.   repeat with i = 1 to arg.count
  91.     sho.add([#rank: arg[i].rank, #suit: arg[i].suit])
  92.   end repeat
  93.   return sho
  94. end
  95.